package comentarios;

import java.util.ArrayList;
import java.util.List;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;

import daos.SessionManager;
import amigos.ManagerAmigos;
import aterrizar.Usuario;

public class VerPubsAmigo {

		private Usuario miUsuario;
		private Usuario miAmigo;
		private Boolean sonAmigos;
		
		public VerPubsAmigo(Usuario miUsuario, Usuario miAmigo){
			this.miAmigo = miAmigo;
			this.miUsuario = miUsuario;
			this.sonAmigos = this.relacion();
		}

		private Boolean relacion(){
			Boolean ret = true;
			try {
				ManagerAmigos ma = new ManagerAmigos();
					ma.consultarAmigo(this.miUsuario.getNombreDeUsuario(),
						this.miAmigo.getNombreDeUsuario());
			} catch (RuntimeException r){
				ret = false;
			}
			return ret;
			
		}

		public List<String> verPubsAmigo(){
			DB mongoDB = SessionManager.MongoClient();
			DBCollection pubs = mongoDB.getCollection("publicaciones");
			
			List<String> ls = new ArrayList<String>();
			
			BasicDBObject queryO = new BasicDBObject();
			
			queryO.append("usuario", this.miAmigo.getNombreDeUsuario());
			queryO.append("visibilidad", Visibilidad.PUBLICO.toString());
				if (this.sonAmigos) queryO.append("visibilidad", Visibilidad.SOLOAMIGOS.toString());
				
			DBCursor cursor = pubs.find(queryO);
			
				while (cursor.hasNext()){
					ls.add(cursor.next().toString());
				}
				
				return ls;
		}
}
